﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InputHandler
{
    /// <summary>
    /// This interface is used by GUI components that want to call debug-methods in the InputHandler. This is
    /// useful for when a GUI component needs to simulate the receipt of a user command or environment event. Using this
    /// interface, a GUI can simulate those scenarios by calling the respective methods, which then cause the
    /// respective events to get fired thus informing Lisa of a received command or event.
    /// </summary>
    public interface IInputHandlerDebug
    {
        /// <summary>
        /// Simulates the receipt of a user command at the InputHandler. This is useful for GUIs that want to test and
        /// debug the InputHandler by simulating receipts of UserCommands.
        /// </summary>
        /// <param name="command">The received command.</param>
        void simulateUserCommandReceipt(String command);

        /// <summary>
        /// Simulates the receipt of an environment event at the InputHandler. This is useful for GUIs that want to
        /// test and debug the InputHandler by simulating receipts of EnvironmentEvents.
        /// </summary>
        /// <param name="eventString">The environment event received.</param>
        void simulateEnvironmentEventReceipt(String eventString);
    }
}
